Skip to content

Shell May Cry: A comprehensive rework of synthetics. #20721

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 37 commits into
base: master
Choose a base branch
from

Conversation

NonQueueingMatt
Copy link
Contributor

@NonQueueingMatt NonQueueingMatt commented Apr 18, 2025

https://www.youtube.com/watch?v=9mPvZ96pHJI

A pull request commissioned by the Synthetic Lore Team to comprehensively rework synthetics (read: IPCs) and how they work in Aurora. The objective is to make IPCs as unique as possible from humans, upgrading the robotic feel and atmosphere, while also preserving a good sense of balance in-game.

Key features:

  • A comprehensive expansion of synthetic organs, all of which now fulfill a purpose: hydraulics, cooling units, power systems, actuators, diagnostics units.
  • Customizable organs with benefits and drawbacks, such as with cooling units and power systems.
  • Unique ways to repair the organs and more involved steps.
  • Unique damage mechanics - every organ has wiring and electronics which affect its functioning, and they are defended by plating which provides natural armour.
  • Improved and immersive diagnostics.
  • Unique features, benefits, and drawbacks for every IPC frame.
  • A rework of the positronic brain, which can be either destroyed or shut down, alongside effects caused by low integrity.
  • A rework of how EMPs affect IPC organs.
  • Non-binary damage states for each organ.

To-do:

  • Finish the unique features for each frame.
  • Look into if mechanical synthskin is possible.
  • Power system.
  • Posibrain mechanics.
  • Passive cooling expansion.
  • EMP mechanics.
  • Repair mechanics.
  • Mob weight mechanics.
  • Gurney for heavy mobs.
  • New augments.
  • IPC tag scanning and flashing.

@NonQueueingMatt NonQueueingMatt added ⚠ High Risk Reasonable chance of causing many or high-severity bugs. WIP The PR is a work in progress and should not be reviewed yet. Balance PRs that attempt to tweak the balance of mechanics in some way. labels Apr 18, 2025
@github-actions github-actions bot added 🗺️ Mapping - Away Ship/Away Site The PR touches away ship and/or away site map files. 🗺️ Mapping - Random Ruins The PR touches random ruins map files. TGUI labels Apr 18, 2025
Copy link

This pull request has conflicts, please resolve those before we can evaluate the pull request.

Copy link

Conflicts have been resolved. Mark the PR as ready for review again if it is ready to be reviewed.

Copy link

Conflicts have been resolved. Mark the PR as ready for review again if it is ready to be reviewed.

Copy link

This pull request has conflicts, please resolve those before we can evaluate the pull request.

@@ -1867,6 +1872,10 @@
return 0

/mob/living/carbon/human/proc/can_drink(var/obj/item/I)
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Adding the check for the reactor right at the start and returning TRUE, prevents the other checks from running (i.e. if the IPC has a mouth and if the mouth is covered)

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

intended as baselines and etc don't have a mouth and thus cannot eat

@@ -188,6 +188,11 @@
var/obj/item/organ/internal/stomach/stomach = internal_organs_by_name[BP_STOMACH]
if(stomach)
return stomach.ingested

if(should_have_organ(BP_REACTOR))
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Have you accounted for the chemical reactions that should/should not occur if IPCs ingest reagents?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

what reactions should not occur? struggling to think of any

if you eat water and potassium you should still explode as an ipc, no?

Comment on lines +1 to +10
/obj/item/organ/internal/machine/internal_storage
name = "internal storage system"
desc = "A simple internal casing used by G2 frames for internal storage."
organ_tag = BP_INTERNAL_STORAGE
parent_organ = BP_GROIN

action_button_name = "Access Internal Storage"

/// The actual, physical storage item.
var/obj/item/storage/internal_storage/storage
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

If we add internal storage, there needs to be a accessible way for security to check if it is empty and possibly forcefully empty it.

Copy link
Contributor Author

@NonQueueingMatt NonQueueingMatt May 16, 2025

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

to forcefully remove it they can ask a roboticist to remove the organ

will add a way to open the organ once removed

Comment on lines +27 to +33
/singleton/synthetic_organ_preset/reactor/kinetic
name = "kinetic power generator"
desc = "A simple, but effective power generator that uses motion to generate power."

external_charge_multiplier = 0.5
base_power_generation = 5
power_supply_type = POWER_SUPPLY_KINETIC
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This wont be possible, because it turns a IPC into a Perpetuum mobile

Comment on lines +7 to +10
action_button_name = "Access Internal Computer"

/// This frame's internal PDA.
var/obj/item/modular_computer/handheld/pda/synthetic_internal/internal_pda
Copy link
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Should the wireless access function be de-coupled from a internal PDA function?

  • I´d assume a internal PDA to be much more common than a wireless access point to access various machinery.

-> If decoupled, there should also be a way to insert the ID card into the internal PDA (so you can access programs that require a inserted id)
-> If the ability to insert the ID into the internal PDA is added, the ability to (forcefully) remove it should also be added

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

will put it on the to-do list, yeah

@BotBOREALIS BotBOREALIS added the Sprites Adds new or changes existing sprites. label May 24, 2025
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
Balance PRs that attempt to tweak the balance of mechanics in some way. Changelog Required ⚠ High Risk Reasonable chance of causing many or high-severity bugs. 🗺️ Mapping - Away Ship/Away Site The PR touches away ship and/or away site map files. 🗺️ Mapping - Random Ruins The PR touches random ruins map files. Merge Conflict Sprites Adds new or changes existing sprites. TGUI WIP The PR is a work in progress and should not be reviewed yet.
Projects
None yet
Development

Successfully merging this pull request may close these issues.

3 participants